package top.bug.blog.annotation;

import org.springframework.stereotype.Component;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author <a href="https://github.com/jiusi66">九思.</a>
 * @email 10837907@qq.com
 * @from <a href="https://www.52bug.top">递归茶馆-www.52bug.top</a>
 * @description 用于标记需要在应用启动时自动注册到Quartz的任务类。被此注解标注的类必须实现org.quartz.Job接口。
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Component
public @interface ScheduledJob {
    /**
     * 任务名称
     */
    String jobName();

    /**
     * 任务分组
     */
    String jobGroup() default "DEFAULT";

    /**
     * Cron表达式，定义执行规则
     */
    String cronExpression();

    /**
     * 是否自动启动。设为false时，任务创建后处于暂停状态。
     */
    boolean autoStart() default true;

    /**
     * 任务描述
     */
    String description() default "";
}